package com.ruoyi.service;

import java.util.List;
import com.ruoyi.domain.LendMessage;
import com.ruoyi.domain.dto.HotListDto;
import com.ruoyi.domain.dto.LendMessageDto;
import com.ruoyi.common.core.domain.AjaxResult;

/**
 * 图书借阅Service接口
 *
 * @author qyb
 * @date 2023-12-26
 */
public interface ILendMessageService
{
    /**
     * 查询图书借阅
     *
     * @param lendId 图书借阅主键
     * @return 图书借阅
     */
    public LendMessage selectLendMessageByLendId(Long lendId);

    /**
     * 查询图书借阅列表
     *
     * @param lendMessage 图书借阅
     * @return 图书借阅集合
     */
    public List<LendMessage> selectLendMessageList(LendMessage lendMessage);


    /**
     * 多功能查询图书借阅列表
     *
     * @param  lendMessageDto 图书借阅
     * @return 图书借阅列表
     */
    List<LendMessageDto> getLendMessage(LendMessageDto lendMessageDto);

    /**
     * 查询借书热榜
     *
     * @param lendMessageDto 图书借阅
     * @return 图书借阅集合
     */
    List<HotListDto> getHotList(LendMessageDto lendMessageDto);

    /**
     * 查询快到期图书
     *
     * @param lendMessageDto 图书借阅
     * @return 图书借阅集合
     */
    List<LendMessageDto> getExpiring(LendMessageDto lendMessageDto);

    /**
     * 借阅图书
     *
     * @param lendMessage 图书借阅
     * @return 图书借阅集合
     */
    public AjaxResult lendBook(LendMessage lendMessage);

    /**
     * 归还图书
     *
     * @param lendMessage 图书借阅
     * @return 图书借阅集合
     */
    public AjaxResult returnBook(LendMessage lendMessage);

    /**
     * 逻辑删除借阅列表
     *
     * @param lendIds 图书借阅
     * @return 结果
     */
    public AjaxResult updateIsDelete(String lendIds);

    /**
     * 提交丢失申请
     *
     * @param lendMessage 图书借阅
     * @return 结果
     */
    public AjaxResult lossReport(LendMessage lendMessage);

    /**
     * 提交丢失申请
     *
     * @param lendMessage 图书借阅
     * @return 结果
     */
    public AjaxResult renewBook(LendMessage lendMessage);

    /**
     * 新增图书借阅
     *
     * @param lendMessage 图书借阅
     * @return 结果
     */
    public AjaxResult insertLendMessage(LendMessage lendMessage);

    /**
     * 修改图书借阅
     *
     * @param lendMessage 图书借阅
     * @return 结果
     */
    public AjaxResult updateLendMessage(LendMessage lendMessage);

    /**
     * 批量删除图书借阅
     *
     * @param lendIds 需要删除的图书借阅主键集合
     * @return 结果
     */
    public int deleteLendMessageByLendIds(Long[] lendIds);

    /**
     * 删除图书借阅信息
     *
     * @param lendId 图书借阅主键
     * @return 结果
     */
    public int deleteLendMessageByLendId(Long lendId);
}
